package com.supersit.greensproject.application;

import android.app.Application;
import android.os.Environment;
import android.support.v4.app.Fragment;

import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.assist.QueueProcessingType;
import com.supersit.greensproject.R;
import com.supersit.greensproject.catchexception.CatchContextException;

import org.xutils.DbManager;
import org.xutils.db.table.TableEntity;
import org.xutils.x;

import java.io.File;
import java.util.ArrayList;
import java.util.List;


public class MyApplication extends Application {
    public static List<Fragment> list;
    //   public static DbManager db;

    @Override
    public void onCreate() {
        super.onCreate();
        //程序错误崩溃处理
//        CatchContextException catchContextException = CatchContextException.getInstance();
//        catchContextException.init(getApplicationContext());
        //  xUtils3初始化
        x.Ext.init(this);
        x.Ext.setDebug(true);
        list = new ArrayList<Fragment>();
        //  db = initDb();
    }

    /**
     * Fragment 公共集合
     *
     * @return
     */
    public static List<Fragment> getFragmentList() {
        return MyApplication.list;
    }

    /**
     * 初始化本地数据
     *
     * @return
     */
    protected DbManager initDb() {
        //本地数据的初始化
        DbManager.DaoConfig daoConfig = new DbManager.DaoConfig()
                .setDbName("greens.db") //设置数据库名
                .setDbVersion(1) //设置数据库版本,每次启动应用时将会检查该版本号,
                //发现数据库版本低于这里设置的值将进行数据库升级并触发DbUpgradeListener
                .setAllowTransaction(true)//设置是否开启事务,默认为false关闭事务
                .setTableCreateListener(new DbManager.TableCreateListener() {
                    @Override
                    public void onTableCreated(DbManager db, TableEntity<?> table) {

                    }
                })//设置数据库创建时的Listener
                .setDbUpgradeListener(new DbManager.DbUpgradeListener() {
                    @Override
                    public void onUpgrade(DbManager db, int oldVersion, int newVersion) {
                        //balabala...
                    }
                });//设置数据库升级时的Listener,这里可以执行相关数据库表的相关修改,比如alter语句增加字段等
        //.setDbDir(null);//设置数据库.db文件存放的目录,默认为包名下databases目录下
        DbManager manager = x.getDb(daoConfig);
        return manager;
    }
}
